import java.util.Calendar;
import java.util.GregorianCalendar;

import javax.faces.bean.ManagedBean;

@ManagedBean(name = "dataBean")
public class DataBean {

	Calendar c = GregorianCalendar.getInstance();
	String data, nome, msg;

	public String getMsg() {
		return msg;
	}

	public void setMsg(String msg) {
		this.msg = msg;
	}

	int ano, mes, dia;
	int resposta = 0;

	public String getData() {
		return data;
	}

	public void setData(String data) {
		this.data = data;
	}

	public String getNome() {
		return nome;
	}

	public void setNome(String nome) {
		this.nome = nome;
	}

	public int getAno() {
		return ano;
	}

	public void setAno(int ano) {
		this.ano = ano;
	}

	public int getMes() {
		return mes;
	}

	public void setMes(int mes) {
		this.mes = mes;
	}

	public int getDia() {
		return dia;
	}

	public void setDia(int dia) {
		this.dia = dia;
	}

	public int getResposta() {
		return resposta;
	}

	public void setResposta(int resposta) {
		this.resposta = resposta;
	}

	public String idade() {
		if(validarData() == true){
			calculaIdade();
			msg = "data valida";
		}else msg = "date invalida";
		return "data";
	}

	public boolean validarData() {
		//fiz na mão mesmo pra passar o tempo rsrsrs
		if (ano <= c.get(Calendar.YEAR) && ano > 0) {
			if (1 <= mes && mes <= 12) {
				if (mes == 1 || mes == 3 || mes == 5 || mes == 7 || mes == 8 || mes == 10 || mes == 12) {
					if (1 <= dia && dia <= 31) {
						return true;
					}
				} else if (mes == 2) {
					if (ano % 4 == 0) {
						if (1 <= dia && dia <= 29) {
							return true;
						} else if (1 <= dia && dia <= 28) {
							return true;
						}
					} else {
						return false;
					}
				} else if (mes == 4 || mes == 6 || mes == 9 || mes == 11) {
					if (1 <= dia && dia <= 30) {
						return true;
					}
				}else return false;
			}else return false;
		}else return false;
		return false;
	}

	public void calculaIdade() {

		System.out.println(c.get(Calendar.MONTH) + 1);
		System.out.println(getDia());
		if (ano != c.get(Calendar.YEAR)) {
			if (mes <= c.get(Calendar.MONTH) + 1) {
				if (mes == c.get(Calendar.MONTH) + 1
						&& dia >= c.get(Calendar.DATE)) {
					resposta = (c.get(Calendar.YEAR) - ano) + 1;
				} else {
					resposta = (c.get(Calendar.YEAR) - ano);
				}
			} else if (mes > c.get(Calendar.MONTH) + 1) {
				resposta = (c.get(Calendar.YEAR) - ano) + 1;
			}
		} else {
			resposta = 0;
		}
	}
}
